package org.hq.upvideo;

import org.hq.pojo.GroupsVideo;

import java.io.IOException;
import java.util.List;

/**
 * 视频更新任务服务接口
 * 用于任务回调处理相应逻辑
 * 1 线程超出线程范围将任务数据保存到 redis 服务
 */
public interface IupVideoService {

        /**
         * 任务出错处理
         *
         * @param entity 任务数据
         */
        void error(VideoTaskEntity entity);

        /**
         * 任务完成处理剩余任务
         * 读取 redis 服务器 任务数据对象重新执行
         */
        void finish();
        /**
         * 任务提交
         * @param entity 任务对象
         */
        void submit(VideoTaskEntity entity);

        /**
         * get 同步 请求
         *
         * @param path 请求路径
         * @return 成功返回数据 失败返回 null
         */
        String getRequestToStringSync(String path) throws IOException;

        /**
         * 添加 一条视频条目 到 redisk
         * @param entity 数据对象
         * @return  成功返回 1 失败 0
         */
        Long addVideoItem(VideoTaskEntity entity);

        /**
         * 视频信息添加到 redis 服务器
         * @param entity 数据对象
         * @return  成功返回 1 失败 0
         */
        Long addVideoMessageRedis(VideoTaskEntity entity);

        /**
         * 分组标签添加
         *
         * @param tagName
         * @param groupsVideo
         * @param tagType     标签类型
         * @return 成功 true 失败 false
         */
        boolean saveGroupsVideo(String tagName, GroupsVideo groupsVideo, int tagType);
}
